// Copyright (C) 2010-2013 von Karman Institute for Fluid Dynamics, Belgium
//
// This software is distributed under the terms of the
// GNU Lesser General Public License version 3 (LGPLv3).
// See doc/lgpl.txt and doc/gpl.txt for the license text.

#include "common/CF.hpp"

#include "common/NetworkInfo.hpp"

////////////////////////////////////////////////////////////////////////////////

namespace cf3 {
namespace common {

////////////////////////////////////////////////////////////////////////////////

NetworkInfo::NetworkInfo() :
    m_is_server(false),
		m_is_client(false),
    m_hostname(),
    m_port(62784)
{

}

////////////////////////////////////////////////////////////////////////////////

NetworkInfo::~NetworkInfo() {}

////////////////////////////////////////////////////////////////////////////////

bool NetworkInfo::is_server() const
{
  return m_is_server;
}

////////////////////////////////////////////////////////////////////////////////

bool NetworkInfo::is_client() const
{
  return m_is_server;
}

////////////////////////////////////////////////////////////////////////////////

std::string NetworkInfo::hostname() const
{
  return m_hostname;
}

////////////////////////////////////////////////////////////////////////////////

unsigned short NetworkInfo::port() const
{
  return m_port;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::start_server()
{
  if(m_is_client)
    m_is_client = false;

  m_is_server = true;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::stop_server()
{
  m_is_server = false;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::start_client()
{
  if(m_is_server)
    m_is_server = false;

  m_is_client = true;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::stop_client()
{
  m_is_client = false;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::set_hostname ( const std::string & name )
{
  m_hostname = name;
}

////////////////////////////////////////////////////////////////////////////////

void NetworkInfo::set_port ( unsigned short port )
{
  m_port = port;
}

////////////////////////////////////////////////////////////////////////////////

} // common
} // cf3
